package com.blueocean_health.care.management.service;

import java.util.Map;

import com.blueocean_health.care.management.domain.base.SysResult;
import com.blueocean_health.care.management.domain.base.UserAccount;
import com.blueocean_health.care.management.domain.dto.UserAccountDto;
import com.blueocean_health.care.management.domain.vo.UserVo;

/**
 * 用户信息  2018年4月17日14:11:54
 * @author wuyanli
 *
 */
public interface UserAccountService {
	
	/**
	 * 根据用户名 密码或者用户Id查询用户信息  2018年4月18日14:17:55
	 * @param map
	 * @return
	 */
	UserAccountDto getUserAccountInfo(Map<String,String> map);

	/**
	 * 新增用户
	 * @param user
	 * @return
	 */
	SysResult addUser(UserAccount user);
	
	/**
	 * 修改用户信息
	 * @param user
	 * @return
	 */
	SysResult updateUser(UserAccount user);
	
	/**
	 * 删除用户
	 * @param userId
	 * @return
	 */
	SysResult deleteUser(String userId);
	/**
	 * 修改密码  2018年4月17日14:12:31
	 * @param user
	 * @return
	 */
	SysResult updatePassword(Map<String,String> map);
	/**
	 * 查看用户关联角色
	 * @param userId
	 * @return
	 */
	SysResult queryRole(String userId);
	/**
	 * 查看用户详情
	 * @param string
	 * @return
	 */
	SysResult query(String userId);
	/**
	 * 查看用户列表
	 * @param map
	 * @return
	 */
	SysResult list(Map<String, Object> map);
	/**
	 * 当前用户组织下的组织/项目架构图
	 * @return
	 */
	SysResult teamList();
	/**
	 * 登录
	 * @param userAccount
	 * @return
	 */
	UserVo login(UserAccount userAccount);
	/**
	 * 通过token 查询用户信息 
	 * @param token
	 * @return
	 */
	UserAccount getUserInfoByToken(String token);
	/**
	 * 登录后多身份选择
	 * @param paramsMap
	 * @return
	 */
	SysResult selectIdentity(Map<String, String> paramsMap);
}
